From 5408361cc6d15d7dabdc263c749b8053e8f9b03d Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Thu, 21 Jun 2007 15:17:31 +0100 Subject: [PATCH] hvm svm: No guest access to SVM MSRs. Signed-off-by: Mats Petersson --- xen/arch/x86/hvm/svm/svm.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index ca259286d2..82e1bad024 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2086,9 +2086,11 @@ static inline void svm_do_msr_access( case MSR_IA32_TIME_STAMP_COUNTER: msr_content = hvm_get_guest_time(v); break; + case MSR_IA32_APICBASE: msr_content = vcpu_vlapic(v)->hw.apic_base_msr; break; + case MSR_EFER: msr_content = v->arch.hvm_svm.cpu_shadow_efer; break; @@ -2110,6 +2112,10 @@ static inline void svm_do_msr_access( msr_content = 0; break; + case MSR_K8_VM_HSAVE_PA: + svm_inject_exception(v, TRAP_gp_fault, 1, 0); + break; + default: if ( rdmsr_hypervisor_regs(ecx, &eax, &edx) || rdmsr_safe(ecx, eax, edx) == 0 ) @@ -2143,9 +2149,15 @@ static inline void svm_do_msr_access( hvm_set_guest_time(v, msr_content); pt_reset(v); break; + case MSR_IA32_APICBASE: vlapic_msr_set(vcpu_vlapic(v), msr_content); break; + + case MSR_K8_VM_HSAVE_PA: + svm_inject_exception(v, TRAP_gp_fault, 1, 0); + break; + default: if ( !long_mode_do_msr_write(regs) ) wrmsr_hypervisor_regs(ecx, regs->eax, regs->edx); -- 2.30.2